Software engineers are destined to wallow in unnecessary complexity due to three fundamental laws: a well-designed system will degrade into a badly designed system over time, complexity is a moat filled by leaky abstractions, and there is no fundamental upper limit on software complexity. Building a new system from scratch without succumbing to these laws is a lot harder than it sounds. Engineers who work on badly designed systems suffer more as badly designed systems have unbound complexity.
Thursday, May 30, 2024